/*
 * Vue Router 路由配置文件
 * 
 * 功能说明：
 * 1. 定义应用的所有路由规则
 * 2. 实现单页应用的路由导航
 * 3. 根据URL路径加载对应的组件
 * 
 * 路由结构：
 * - / : 登录页面
 * - /index/* : 教师/管理员功能页面
 * - /student/* : 学生功能页面
 * - /answer : 考试答题页面
 * 
 * @Author: ShanZhu
 * @Date: 2023-11-23
 */

// 导入Vue和Vue Router
import Vue from 'vue'
import Router from 'vue-router'

// 使用Vue Router插件
Vue.use(Router)

// 重写Router的push方法，避免重复导航报错
const VueRouterPush = Router.prototype.push
Router.prototype.push = function push(to) {
  return VueRouterPush.call(this, to).catch(err => err)
}

// 导出路由配置
export default new Router({
  routes: [
    {
      path: '/', // 根路径
      name: 'login', // 路由名称
      component: () => import('@/components/common/login') // 登录界面组件，懒加载
    },
    {
      path: '/index', // 教师/管理员主页路径
      component: () => import('@/components/admin/index'), // 教师/管理员主页组件
      children: [ // 子路由，嵌套在主页内
        {
          path: '/', // 默认子路由
          component: () => import('@/components/common/hello') // 欢迎页面
        },
        {
          path: '/grade', // 学生成绩统计页面
          component: () => import('@/components/charts/grade') // 成绩图表组件
        },
        {
          path: '/selectExamToPart', // 学生分数段统计页面
          component: () => import('@/components/teacher/selectExamToPart') // 分数段统计组件
        },
        {
          path: '/scorePart', // 成绩分布页面
          component: () => import('@/components/charts/scorePart') // 成绩分布图表组件
        },
        {
          path: '/allStudentsGrade', // 所有学生成绩统计页面
          component: () => import('@/components/teacher/allStudentsGrade') // 成绩统计组件
        },
        // 注释掉的功能描述页面
        // {
        //   path: '/examDescription', // 考试管理功能描述
        //   component: () => import('@/components/teacher/examDescription')
        // },
        {
          path: '/selectExam', // 查询所有考试页面
          component: () => import('@/components/teacher/selectExam') // 考试列表组件
        },
        {
          path: '/addExam', // 添加考试页面
          component: () => import('@/components/teacher/addExam') // 添加考试组件
        },
        // 注释掉的题库管理功能描述页面
        // {
        //   path: '/answerDescription', // 题库管理功能介绍
        //   component: ()=> import('@/components/teacher/answerDescription')
        // },
        {
          path: '/selectAnswer', // 查询所有题库页面
          component: () => import('@/components/teacher/selectAnswer') // 题库列表组件
        },
        {
          path: '/addAnswer', // 增加题库主界面
          component: () => import('@/components/teacher/addAnswer') // 添加题库组件
        },
        {
          path: '/editAnswerChildren', // 编辑题库主界面
          component: () => import('@/components/teacher/editAnswerChildren') // 编辑题库组件
        },
        {
          path: '/addAnswerChildren', // 点击试卷跳转到添加题库页面
          component: () => import('@/components/teacher/addAnswerChildren') // 添加题库子项组件
        },
        {
          path: '/studentManage', // 学生管理界面
          component: () => import('@/components/teacher/studentManage') // 学生管理组件
        },
        {
          path: '/addStudent', // 添加学生页面
          component: () => import('@/components/teacher/addStudent') // 添加学生组件
        },
        {
          path: '/teacherManage', // 教师管理页面
          component: () => import('@/components/admin/tacherManage') // 教师管理组件（注意：文件名拼写错误）
        },
        {
          path: '/addTeacher', // 添加教师页面
          component: () => import('@/components/admin/addTeacher') // 添加教师组件
        }
      ]
    },
    {
      path: '/student', // 学生功能主页路径
      component: () => import('@/components/student/index'), // 学生主页组件
      children: [ // 学生功能的子路由
        {
          path: "/", // 默认子路由
          component: () => import('@/components/student/myExam') // 我的考试页面
        },
        {
          path: '/startExam', // 开始考试页面
          component: () => import('@/components/student/startExam') // 开始考试组件
        },
        {
          path: '/manager', // 学生管理页面
          component: () => import('@/components/student/manager') // 学生管理组件
        },
        {
          path: '/examMsg', // 考试信息页面
          component: () => import('@/components/student/examMsg') // 考试信息组件
        },
        {
          path: '/message', // 消息页面
          component: () => import('@/components/student/message') // 消息组件
        },
        {
          path: '/studentScore', // 学生成绩页面
          component: () => import("@/components/student/answerScore") // 答题成绩组件
        },
        {
          path: '/scoreTable', // 成绩表格页面
          component: () => import("@/components/student/scoreTable") // 成绩表格组件
        }
      ]
    },
    {
      path: '/answer', // 考试答题页面路径（独立路由，不在学生主页内）
      component: () => import('@/components/student/answer') // 考试答题组件
    }
  ]
})
